Identifying hover and/or palm input and rejecting spurious input for a touch panel

ABSTRACT

A touch panel controller may include a communications module configured to receive pixel values, where each pixel value represents a capacitance associated with a pixel formed at a drive electrode and a sensor electrode of a touch panel. The touch panel controller may also include a processing module configured to discard pixel values below a noise threshold, discard pixel values for non-zero pixels that are not adjacent to non-zero pixels, reject detected input for pixel values associated with a palm input, compute an initial centroid associated with the pixel values, reject detected input for pixel values associated with a hover input, and provide detected input that is not associated with palm input or hover input.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of 35 U.S.C. §119(e) of U.S.Provisional Application Ser. No. 61/495,161, filed Jun. 9, 2011, andtitled “HOVER, PALM AND SPURIOUS REJECTION FOR MUTUAL CAPACITANCE TOUCHCONTROLLERS,” which is herein incorporated by reference in its entirety.

BACKGROUND

A touch panel is a human machine interface (HMI) that allows an operatorof an electronic device to provide input to the device using aninstrument such as a finger, a stylus, and so forth. For example, theoperator may use his or her finger to manipulate images on an electronicdisplay, such as a display attached to a mobile computing device, apersonal computer (PC), or a terminal connected to a network. In somecases, the operator may use two or more fingers simultaneously toprovide unique commands, such as a zoom command, executed by moving twofingers away from one another; a shrink command, executed by moving twofingers toward one another; and so forth.

A touch screen is an electronic visual display that incorporates a touchpanel overlying a display to detect the presence and/or location of atouch within the display area of the screen. Touch screens are common indevices such as all-in-one computers, tablet computers, satellitenavigation devices, gaming devices, and smartphones. A touch screenenables an operator to interact directly with information that isdisplayed by the display underlying the touch panel, rather thanindirectly with a pointer controlled by a mouse or touchpad. Capacitivetouch panels are often used with touch screen devices. A capacitivetouch panel generally includes an insulator, such as glass, coated witha transparent conductor, such as indium tin oxide (ITO). As the humanbody is also an electrical conductor, touching the surface of the panelresults in a distortion of the panel's electrostatic field, measurableas a change in capacitance.

SUMMARY

A touch panel controller is disclosed. In one or more implementations,the touch panel controller comprises a communications module configuredto receive pixel values, where each pixel value represents a capacitanceassociated with a pixel formed at a drive electrode and a sensorelectrode of a touch panel. The touch panel controller also comprises aprocessing module configured to discard pixel values below a noisethreshold, discard pixel values for non-zero pixels that are notadjacent to non-zero pixels, reject detected input for pixel valuesassociated with a palm input, compute an initial centroid associatedwith the pixel values, reject detected input for pixel values associatedwith a hover input, and provide detected input that is not associatedwith palm input or hover input.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

DRAWINGS

The Detailed Description is described with reference to the accompanyingfigures. The use of the same reference numbers in different instances inthe description and the figures may indicate similar or identical items.

FIG. 1 is a diagrammatic illustration of a touch panel assemblyincluding a touch panel controller configured to identify hover and/orpalm input and reject spurious input to a touch panel in accordance withexample implementations of the present disclosure.

FIG. 2 is a diagrammatic illustration of a touch panel controllerconfigured to identify hover and/or palm input and reject spurious inputto a touch panel in accordance with example implementations of thepresent disclosure.

FIG. 3 is a flow diagram illustrating a method for identifying hoverand/or palm input and rejecting spurious input to a touch panel inaccordance with example implementations of the present disclosure.

FIGS. 4 through 7 are flow diagrams further illustrating steps of themethod illustrated in FIG. 3.

DETAILED DESCRIPTION Overview

Oftentimes touch panel control equipment will detect spurious orunintended signals generated when an operator positions a touchinstrument, such as a finger or a stylus, over the touch surface of atouch panel while not actually touching the touch surface. Thispositional orientation of a touch instrument may be referred to as“hovering.” In many cases, the change in distance between touching andhovering may be about one millimeter (1 mm) or less. An operator mayhover with a touch instrument over a touch surface and generateunintended input for a variety of reasons. For example, an operator mayidly hover over a touch surface while debating about which region of atouch panel to select (e.g., when multiple options are presented to theoperator). In other instances, an operator may hover in anticipation ofa selection that must be performed quickly and/or accurately (e.g., whenthe operator uses the touch panel as an input device for an electronicgame). In these instances, which may be referred to as “static” hover,touch panel control equipment can have difficulty distinguishing aspurious input signal from an intended touch.

It is generally desirable to either reject input from a hoveringcondition or process hovering input differently from input receivedduring a touching condition (e.g., depending upon the requirements of aparticular application). It may also be desirable to recognize a stylusand distinguish it from a finger and/or a hovering finger. Further,finger sizes may vary greatly from person to person, and the response ofa touch panel may also change from the edges of the touch panel towardthe central region of the touch panel. These variations can makerejecting input received from a hover condition difficult.

Additionally, an operator of a touch panel may generate other types ofspurious input. For instance, when operating a touch panel, an operatormay inadvertently rest part of an appendage, such as a palm, on aportion of a touch surface. For example, when a touch panel is includedwith a touch screen for a portable electronic device, such as a tabletcomputer, an operator may rest a palm upon a peripheral region of theelectronic device while executing touch operations. However, in manycases a touch screen may cover a substantial portion of the surface ofan electronic device, extending close to the edge of the device. Thus,when an operator rests a palm at the periphery of such a device, aportion of the palm may be disposed on the touch screen and generatespurious touch input. Spurious finger signals may be generated by largerfingers when they couple with non-shielded connection traces of a touchpanel, and may also need to be rejected. Portions of an operator's bodymay also generate unintended input even when the operator is notactually touching a touch surface (e.g., in the manner of static hoversignals detected for a palm as described above with reference to a touchinstrument).

Accordingly, the present disclosure is directed to a touch panelcontroller that can implement one or more rule sets configured tofurnish rejection of a spurious input signal generated as the result ofhover. In implementations, the touch panel controller can also reject aspurious input signal generated as the result of detecting a portion ofan appendage (e.g., a palm) in contact with the touch surface of a touchpanel. A rule set for rejecting hover and/or palm detection can betailored to a specific touch panel configuration (e.g., includingparameters specific to a particular touch panel size, resolution, and soforth). In implementations, the touch panel controller is configured fora capacitive touch panel, such as a mutual capacitance touch panel. Thetouch panel controller may be operative to implement hover rejectionand/or palm rejection when used with touch instruments such as styluseshaving diameters between approximately two and four millimeter (2-4 mm)and/or fingers having diameters between approximately four and twentymillimeters (4-20 mm).

A touch panel controller configured in accordance with the presentdisclosure may be used with touch-based human interface devicesincluding, but not necessarily limited to: large touch panel products,all-in-one computers, mobile computing devices (e.g., handheld portablecomputers, Personal Digital Assistants (PDAs), laptop computers, netbookcomputers, tablet computers, and so forth), mobile telephone devices(e.g., cellular telephones and smartphones), portable game devices,portable media players, multimedia devices, satellite navigation devices(e.g., Global Positioning System (GPS) navigation devices), e-bookreader devices (eReaders), Smart Television (TV) devices, surfacecomputing devices (e.g., table top computers), Personal Computer (PC)devices, as well as with other devices that employ touch-based humaninterfaces.

Example Implementations

FIGS. 1 and 2 illustrate example touch panel assemblies 100 configuredto receive and interpret input from an instrument such as a finger, astylus, and so forth. A touch panel assembly 100 includes a touch panel102 coupled with a touch panel controller 104 for controlling the touchpanel 102. In implementations, a touch panel 102 may comprise a mutualcapacitance based capacitive touch panel, such as a Projected CapacitiveTouch (PCT) panel. The touch panel 102 may include cross-bar X and Y ITOpatterns used for drive electrodes/traces and sensor electrodes/traces.The drive electrodes and sensor electrodes correspond to a coordinatesystem, where each coordinate location (pixel) comprises a capacitorformed at an intersection between a drive electrode and a sensorelectrode.

The drive electrodes are connected to a current source to generate alocal electrostatic field at each capacitor, and a change in the localelectrostatic field generated by the touch of an instrument (e.g., afinger or a stylus) at each capacitor causes a change in capacitance atthe corresponding coordinate location/pixel. In some cases, more thanone touch can be sensed at differing coordinate locationssimultaneously. In implementations, the pitch, or substantiallyrepetitive spacing between adjacent longitudinal axes of the driveelectrodes and sensor electrodes (e.g., ITO spacing), may beapproximately five millimeters (5 mm) to provide touch accuracy for thetouch of one or more fingers, and touch resolution for a touchcomprising two or more fingers (e.g., when the fingers are separated byapproximately ten and one-half millimeters (10.5 mm) center to center).

The cross-bar patterns can be formed using two (2) layers (e.g., a drivelayer and a sensor layer) or 1.5-layers (e.g., drive and sensorelectrodes on a single layer, with jumpers connecting portions of thedrive and/or sensor electrodes together). The sensor electrodes areelectrically insulated from the drive electrodes (e.g., using adielectric layer, and so forth). For example, the sensor electrodes maybe provided on one substrate (e.g., comprising a sensor layer disposedon a glass substrate), and the drive electrodes may be provided on aseparate substrate (e.g., comprising a drive layer disposed on anothersubstrate). In this two-layer configuration, the sensor layer can bedisposed above the drive layer (e.g., with respect to a touch surface112). For example, the sensor layer can be positioned closer to a touchsurface 112 than the drive layer. However, this configuration isprovided by way of example only and is not meant to be restrictive ofthe present disclosure. Thus, other configurations can be provided wherethe drive layer is positioned closer to a touch surface 112 than thesensor layer, and/or where the sensor layer and the drive layer comprisethe same layer. For instance, in a 1.5-layer implementation (e.g., wherethe drive layer and the sensor layer are included on the same layer butphysically separated from one another), one or more jumpers can be usedto connect portions of a drive electrode together. Similarly, jumperscan be used to connect portions of a sensor electrode together.

One or more touch panels 102 can be included with a touch panel assembly100 implemented as a touch screen assembly. A touch screen assembly mayinclude a display screen 106, such as an LCD screen, where the sensorlayer and the drive layer of the touch panel 102 are sandwiched betweenthe display screen 106 and a bonding layer 108, e.g., with a protectivecover 110 (e.g., glass) attached thereto. The protective cover 110 mayinclude a protective coating, an anti-reflective coating, and so forth.The protective cover 110 may comprise a touch surface 112, upon which anoperator can use a touch instrument (e.g., one or more fingers, astylus, and so forth) to input commands to the touch screen assembly.For example, the touch panel 102 may be operatively configured to allowan operator of the touch panel 102 to use a writing accessory, such as astylus, which includes a generally pointed end having a smaller diameterthan a finger. The commands can be used to manipulate graphics displayedby, for example, the LCD screen. Further, the commands can be used asinput to an electronic device connected to a touch panel 102, such as amultimedia device or another electronic device (e.g., as previouslydescribed).

Three-dimensional (3-D) calibration may be performed for a particulartouch panel 102 configuration using a robot for positioning a touchinstrument at various locations upon the touch surface 112 of a touchpanel 102 and/or at positions above but not touching (hovering) over thetouch surface 112 (e.g., using an air gap of between approximatelyone-half and one millimeter (0.5-1 mm) above a touch surface 112 of thetouch panel 102). In other instances, an air gap may be simulated usinga low dielectric constant film (e.g., a film having an e-value ofapproximately one and eight-tenths (1.8) and a thickness ofapproximately seven-tenths of a millimeter (0.7 mm)). In some instances,e.g., for a pixel pitch between approximately four and five millimeters(4-5 mm), the touch panel 102 may be divided into a seven-by-seven (7×7)mesh grid during centroid computation.

The calibration can be performed using different touch instruments,including but not necessarily limited to: a stylus, a ring-shaped touchinstrument, a flat touch instrument, and so forth. The touch instrumentsmay comprise different shapes and/or materials, and may be configured toapproximate the effects of a human appendage such as a finger whencontacting and/or in proximity to a touch panel 102. In implementations,various brass fingers and/or styluses can be used having diametersbetween approximately two and twenty millimeters (2-20 mm). For example,calibration can be performed using multiple touch instruments havingdifferent diameters, including but not necessarily limited toapproximately: two millimeters (2 mm), four millimeters (4 mm), sevenmillimeters (7 mm), ten millimeters (10 mm), twelve millimeters (12 mm),fifteen millimeters (15 mm), and so forth.

Touch parameters that may be extracted from the calibration include, butare not necessarily limited to: mass, non-zero pixel count, peak, andaspect ratio for a particular touch panel 102 configuration. Theperformance of the touch panel 102 with respect to these parameters maythen be measured using the data acquired during the calibration.

For the purposes of the present disclosure, the term “non-zero pixel”may be used to refer to a non-zero capacitance value associated with acoordinate location formed at the intersection of a drive electrode anda sensor electrode. For example, a pixel value (Z-value) determined fora particular coordinate location may comprise a digital value betweenzero and approximately one thousand five hundred (0-1500). It should benoted that the upper range for a Z-value may be based upon a processingparameter, such as a digital word length.

The touch panel 102 may be calibrated so that each capacitance valueassociated with a coordinate location will register at or near the upperrange of possible pixel values for that location during a full touchcondition. This may be implemented using different gain for each pixel,different gain for different regions of the touch panel 102 (e.g.,different gain for an outer panel portion 114 versus an inner panelportion 116), and so forth.

The outer panel portion 114 of the touch panel 102 may be defined by aregion of the touch surface 112 extending from an outer edge 118 of thetouch surface 112 toward an inner panel portion 116 of the touch surface112. In some instances, the outer panel portion 114 may comprise agenerally rectangle-shaped strip extending around the periphery of thetouch panel 102, and may have a width of approximately one-half thediameter of a typical human finger (e.g., between approximately threeand one-half and five millimeters (3.5-5 mm)). However, this width isprovided by way of example only and is not meant to be restrictive ofthe present disclosure. Thus, in other instances, the width of the outerpanel portion 114 may be about the diameter of a typical human finger(e.g., between approximately five and ten millimeters (5-10 mm)).

In implementations, the gain of a full touch panel 102 may be calibratedfor row drive mismatch, column sensor mismatch, and/or for panel pixelgain variation due to distributed Resistor-Capacitor (R-C) networkeffects of the touch panel 102 (e.g., gain and phase roll-off that maybe spatially dependent). This type of gain calibration can be performedusing a modified inverse matrix technique, an individual pixelcalibration technique (e.g., dark frame calibration), and so forth.

Further, the Z-value associated with each coordinate location may beadjusted to account for one or more environmental factors, such assignal noise, temperature-dependent noise, and so forth. For example, anoise threshold value, which may be computed for each pixel and/or fordifferent regions of the touch panel 102 (e.g., for an outer panelportion 114 versus an inner panel portion 116 as previously described),may be subtracted from each Z-value. This technique can be used toremove measurements below the noise threshold (e.g., discarding negativeZ-values after subtracting a noise threshold value and replacing themwith zero (0) values). In this manner, a remaining non-zero pixelZ-value may be indicative of the presence of a touch.

For the purposes of the present disclosure, the term “mass” may be usedto refer to the sum of the non-zero pixel Z-values for a set ofcoordinate locations associated with a particular touch (e.g., an areaassociated with a finger touch (finger area)). The term “average mass”may be used to refer to the average of the sums of multiple non-zeropixel Z-values associated with multiple touches (e.g., multiple fingerareas). The term “mass threshold” may be used to refer to a thresholdvalue used to discard spurious signals detected by the touch panel 102,e.g., by discarding a touch associated with a mass below a particularmass threshold.

For the purposes of the present disclosure, the term “peak” may be usedto refer to the largest single Z-value for a set of coordinate locationsassociated with a particular touch (e.g., a finger area). The term “peakthreshold” may be used to refer to a threshold value used to discardspurious signals detected by the touch panel 102, e.g., by discarding atouch associated with a peak below a particular peak threshold.

For the purposes of the present disclosure, the term “aspect ratio” maybe used to refer to a proportion representing a peak with respect to anumber of non-zero pixels (non-zero pixel count) for a set of coordinatelocations associated with a particular touch (e.g., a finger area). Insome instances, the aspect ratio may be a peak divided by a non-zeropixel count, while in other instances, the aspect ratio may be the peakdivided by the square root of the non-zero pixel count. For example,assuming that a particular touch profile is generally circular, if thepeak for a finger or stylus area is used to represent the height of acone, and the non-zero pixel count for the finger or stylus area is usedto represent the area of the base of that cone, the peak divided by thesquare root of the non-zero pixel count may be directly proportional tothe height of the cone divided by the diameter of the base of the cone.

Referring now to FIG. 2, the touch panel controller 104 may include aprocessing module 120, a communications module 122, and a memory module124. The processing module 120 provides processing functionality for thetouch panel controller 104 and may include any number of processors,micro-controllers, or other processing systems and resident or externalmemory for storing data and other information accessed or generated bythe touch panel controller 104. The processing module 120 may executeone or more software programs which implement techniques describedherein. The processing module 120 is not limited by the materials fromwhich it is formed or the processing mechanisms employed therein, and assuch, may be implemented via semiconductor(s) and/or transistors (e.g.,using electronic Integrated Circuit (IC) components), and so forth. Thecommunications module 122 is operatively configured to communicate withcomponents of the touch panel 102. For example, the communicationsmodule 122 can be configured to control the drive electrodes of thetouch panel 102, receive inputs from the sensor electrodes of the touchpanel 120, and so forth. The communications module 122 is alsocommunicatively coupled with the processing module 120 (e.g., forcommunicating inputs from the sensor electrodes of the touch panel 120to the processing module 120).

The memory module 124 is an example of tangible computer-readable mediathat provides storage functionality to store various data associatedwith operation of the touch panel controller 104, such as softwareprograms and/or code segments, or other data to instruct the processingmodule 120 and possibly other components of the touch panel controller104 to perform the steps described herein. For example, memory module124 may be used to store one or more rule sets configured to allow theprocessing module 120 to differentiate touch input from hover input, andso forth. Although a single memory module 124 is shown, a wide varietyof types and combinations of memory may be employed. The memory module124 may be integral with the processing module 120, may comprisestand-alone memory, or may be a combination of both. The memory module124 may include, but is not necessarily limited to: removable andnon-removable memory components, such as Random Access Memory (RAM),Read-Only Memory (ROM), Flash memory (e.g., a Secure Digital (SD) memorycard, a mini-SD memory card, a micro-SD memory card), magnetic memory,optical memory, Universal Serial Bus (USB) memory devices, and so forth.In embodiments, the client device 104 memory 118 may include removableIntegrated Circuit Card (ICC) memory, such as memory provided by aSubscriber Identity Module (SIM) card, a Universal Subscriber IdentityModule (USIM) card, a Universal Integrated Circuit Card (UICC), and soon.

Example Process

Referring now to FIG. 3, example techniques are described foridentifying hover and/or palm input and rejecting spurious input to atouch panel.

FIG. 3 depicts a process 300, in an example implementation, foridentifying hover and/or palm input and rejecting spurious input to atouch panel, such as touch panel 102 included with touch panel assembly100 illustrated in FIGS. 1 and 2 and described above. In the process 300illustrated, capacitance values associated with pixels formed at theintersections of drive electrodes and sensor electrodes are received(Block 310). For example, with reference to FIGS. 1 and 2, Z-values forvarious coordinate locations of touch panel 102 are received by touchpanel controller 104. As described, the touch panel 102 can becalibrated so that each capacitance value associated with a pixel willregister a Z-value at or near the upper range of possible pixel valuesfor that location during a full touch condition.

Next, one or more peaks are detected (Block 320). In implementations, ifno peak is detected at or above a detection threshold (Decision Block322) process 300 may report the absence of a detected touch (Block 324).Otherwise process 300 proceeds to discard pixels below a noise threshold(Block 326). As described, global zero-thresholding may be performedbased on panel noise, where negative Z-values are discarded aftersubtracting a noise threshold value and replaced with zero (0) values.Further, local thresholding may also be performed to discard Z-valuesbased on thresholds that can vary for different regions of the touchpanel 102 (e.g., for an outer panel portion 114 versus an inner panelportion 116). In some instances, local thresholding may vary based onfinger peak level. For example, a low peak may imply a stylus, and thezero-thresholding may be equal to the noise threshold for the touchpanel. In other instances, a strong peak may imply a finger, and thethreshold for the zero-thresholding may be increased relative to thenoise threshold. In a particular implementation, a single peak thresholdhaving a threshold count of approximately eight hundred (800) can beused to differentiate a stylus touch from a finger touch. Then, dynamiczero-thresholding with a threshold count of approximately one hundredfifty (150) for a stylus and/or approximately two hundred fifty (250)for a finger may be used for centroid computation.

Then, one or more spurious peaks are filtered from the detected peaks(Block 330). For example, when fingers are coupled with row or columnconnection wires, spurious pixels (false touches) may be produced in theform of isolated peaks, or peaks that are not adjacent to any non-zeropixels. These isolated peaks may be filtered using a three-by-three(3×3) matrix spatial kernel such as [1,1,1; 1,−k,1; 1,1,1], where “;”indicates a new row in the matrix representation. The value of “k” inthis example can be optimized to distinguish between a stylus and aspurious pixel. In some instances, the position of a touch can becorrelated to a spurious peak registered elsewhere on the touch panel,and the value of “k” can be weighted based upon whether a touch (largepeak) is located at a critical area of the panel identified in thismanner. In implementations, the touch panel may be scanned and the noisethreshold may be increased (Block 332). For example, the peak values canbe sorted in descending order, and excess peaks at lower peak levels canbe discarded by increasing the noise threshold. Then, pixels below thenoise threshold may be discarded (Block 334).

In some instances, one or more palm inputs are rejected (Block 340). Theterm “palm rejection” may be used to refer to the detection of a touchthat is irregular (e.g., generally non-circular) and/or too large (e.g.,larger than the diameter of a typical finger). In implementations, arow-by-row scan may be performed for non-zero pixels (Block 342). Forexample, a raster scan may be used on the touch panel. Next, adjacentnon-zero pixels may be connected into globs (Block 344). For instance,each thresholded non-zero pixel may be assigned a glob identification(ID). Based on the scan direction, non-zero pixels that are neighbors incertain directions are allocated to the same glob ID. In an exampleimplementation, the scan may start with the second row, and may beperformed for each pixel “x” as follows:

$\begin{matrix}{BAC} \\{Dx}\end{matrix}$

In this implementation, each pixel “A,” “B,” “C,” and “D” adjacent topixel “x” is checked for a non-zero value (e.g., in the alphabeticalorder indicated). If any one of these four pixels is a non-zero pixel,then pixel “x” is assigned the glob ID of that pixel.

Then, adjacent globs may be merged (Block 346). For example, globs thatare found to touch are combined into a single glob. For the purposes ofthe present disclosure, the term “touching” may be used to refer toglobs that are separated by less than a distance that would be presentbetween finger touches (e.g., less than approximately ten and one-halfmillimeters (10.5 mm)). Next, each glob that contains more than acertain number of pixels may be rejected (Block 348). In some instances,when a glob size exceeds the palm rejection threshold (e.g., in terms ofa number of pixels) and a palm is detected, the zeroing threshold can belowered and the panel rescanned. The zeroing threshold may also belowered when a large body is detected in terms of total panel non-zeropixel count and/or total panel mass. Lowering the zeroing threshold mayimprove the coalescence of adjacent globs that belong to the same palm,but may otherwise be separated due to a higher noise threshold. In thistype of implementation, it may be implied that a stylus or finger is farenough from the palm that it will not coalesce with the palm despite alowered threshold. Further, in some implementations, informationindicating the presence of a large body determined using specificabsorption rate (SAR) proximity detection (e.g., via self and/or mutualcapacitance based sensing) may be used to lower the threshold for globdetection and enlarge globs so they are more prone to merger.

Then, an initial centroid computation is performed (Block 350). Forinstance, the touch panel controller 104 may be used to compute acentroid for each touch area detected. In some instances, one or morehover inputs are rejected (Block 360). In implementations, the aspectratio for each touch area may be examined based upon pixel count (e.g.,the number of non-zero pixels after thresholding), and a decision can bemade regarding whether each detected input area represents a hover or atouch. For example, a hover condition may produce a lower aspect ratiowhen compared to the aspect ratio for a touch condition. The aspectratio can be determined for a given thresholding value and may bespecific to a particular touch panel configuration. There may be astrong correlation between aspect ratio and pixel count for hover andtouch. Thus, the determination of aspect ratio for a touch area mayprovide more accurate results for touch and/or hover determination whencompared to techniques that use mass and/or peak based decisions.

In implementations, hover inputs may be rejected using a pre-specifiedrule set specific to the touch panel (Block 362). For example, in aparticular implementation, based upon robot scan analysis andmathematical modeling of panel mutual capacitance with a finger, it wasfound that a finger profile closely resembled a Gaussian profile thatwas slightly flattened at its top. Thus, another definition of the term“aspect ratio” may use a Gaussian approximation that is independent ofactual centroid thresholding. In this case, the non-zero pixel count maybe used for 1/e thresholding relative to peak for the aspect ratiocomputation. In some instances, aspect ratio testing for a particulartouch panel based on non-zero pixel count can be modified based onfinger or stylus location. Thus, a touch panel can be zoned intomultiple (e.g., two (2), three (3), or more than three (3)) concentricsegments over which hover rejection rules may be uniform. Then, basedupon centroid position (which may be either raw or linearized for touchaccuracy), a corresponding zone may be determined and a particular hoverrejection rule may be applied.

Aspect ratio testing can be configured for a stylus so that peak and/ormass values are also considered. A stylus may produce a much lower peakthan a finger touch. Thus, a hovering stylus may generate input close tothe noise floor for a peak, and the mass of a stylus may also be muchlower than the mass of a finger hover (the mass of a finger hover beingless than the mass of a finger touch). Further, in some instances, afull two-dimensional (2-D) spatial correlation of a finger profile(which may be non-thresholded) can be performed with a predicted hoverand a touch profile for the corresponding finger size (e.g., wherefinger size is equal to a number of pixels greater than 1/e of a peak).The predicted profiles may be parameterized models generated from robotscan mean profiles for touch and hover for various finger sizes. In thistype of implementation, independent model parameters may include panelsegment number, hover, and touch. Then, one or more detected touches areprovided (Block 370). For example, the touch panel controller 104 mayprovide the centroids of the detected touches to a software applicationor the like.

CONCLUSION

Although the subject matter has been described in language specific tostructural features and/or process operations, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A touch panel controller comprising: acommunications module configured to receive a plurality of pixel values,each one of the plurality of pixel values representing a capacitanceassociated with a pixel formed at a drive electrode and a sensorelectrode of a touch panel; and a processing module communicativelycoupled with the communications module and configured to discard any oneof the plurality of pixel values below a noise threshold, discard anyone of the plurality of pixel values for any one non-zero pixel that isnot adjacent to another non-zero pixel, reject detected input for anyone of the plurality of pixel values associated with a palm input,compute an initial centroid for each one of the plurality of pixelvalues, reject detected input for any one of the plurality of pixelvalues associated with a hover input, and provide detected input that isnot associated with palm input or hover input.
 2. The touch panelcontroller as recited in claim 1, wherein the processing module isfurther configured to associate one of the plurality of pixel valueswith a finger touch; increase the noise threshold; and further discardany ones of the plurality of capacitance values below the noisethreshold.
 3. The touch panel controller as recited in claim 1, whereinthe processing module is further configured to weight a filter for afirst pixel location based upon identifying a touch at a second pixellocation separated from the first pixel location.
 4. The touch panelcontroller as recited in claim 1, wherein the processing module isfurther configured to scan the plurality of pixel values to coalesceadjacent non-zero pixels into a glob; and reject any detected inputassociated with each glob having more than a pre-specified number ofnon-zero pixels.
 5. The touch panel controller as recited in claim 4,wherein the processing module is further configured to coalesce adjacentglobs into a single glob.
 6. The touch panel controller as recited inclaim 5, wherein the processing module is further configured to lower azeroing threshold; and rescan the plurality of pixel values to coalesceadjacent non-zero pixels into the single glob.
 7. The touch panelcontroller as recited in claim 6, wherein the processing module isfurther configured to use specific absorption rate (SAR) proximitydetection to identify the presence of the palm in proximity to the touchpanel.
 8. The touch panel controller as recited in claim 1, wherein theprocessing module is further configured to calculate an aspect ratio forthe detected input to identify whether the detected input representstouch input or hover input.
 9. The touch panel controller as recited inclaim 8, wherein the processing module is further configured to comparethe aspect ratio for the detected touch to a pre-specified rule setspecific to the touch panel.
 10. A method comprising: receiving aplurality of pixel values, each one of the plurality of pixel valuesrepresenting a capacitance associated with a pixel formed at a driveelectrode and a sensor electrode of a touch panel; discarding any one ofthe plurality of pixel values below a noise threshold; discarding anyone of the plurality of pixel values for any one non-zero pixel that isnot adjacent to another non-zero pixel; rejecting detected input for anyone of the plurality of pixel values associated with a palm input; andproviding detected input that is not associated with palm input or hoverinput.
 11. The method as recited in claim 10, wherein discarding any oneof the plurality of pixel values below a noise threshold furthercomprises: associating one of the plurality of pixel values with afinger touch; increasing the noise threshold; and further discarding anyones of the plurality of capacitance values below the noise threshold.12. The method as recited in claim 10, wherein discarding any one of theplurality of pixel values for any one non-zero pixel that is notadjacent to another non-zero pixel comprises: weighting a filter for afirst pixel location based upon identifying a touch at a second pixellocation separated from the first pixel location.
 13. The method asrecited in claim 10, wherein rejecting detected input for any one of theplurality of pixel values associated with a palm input comprises:scanning the plurality of pixel values to coalesce adjacent non-zeropixels into a glob; and rejecting any detected input associated witheach glob having more than a pre-specified number of non-zero pixels.14. The method as recited in claim 13, further comprising: coalescingadjacent globs into a single glob.
 15. The method as recited in claim14, wherein coalescing adjacent globs into a single glob comprises:identifying the presence of a palm in proximity to the touch panel;lowering a zeroing threshold; and rescanning the plurality of pixelvalues to coalesce adjacent non-zero pixels into the single glob. 16.The method as recited in claim 15, wherein identifying the presence of apalm in proximity to the touch panel comprises: using specificabsorption rate (SAR) proximity detection to identify the presence ofthe palm in proximity to the touch panel.
 17. A method comprising:receiving a plurality of pixel values, each one of the plurality ofpixel values representing a capacitance associated with a pixel formedat a drive electrode and a sensor electrode of a touch panel; discardingany one of the plurality of pixel values below a noise threshold;discarding any one of the plurality of pixel values for any one non-zeropixel that is not adjacent to another non-zero pixel; computing aninitial centroid for each one of the plurality of pixel values;rejecting detected input for any one of the plurality of pixel valuesassociated with a hover input; and providing detected input that is notassociated with palm input or hover input.
 18. The method as recited inclaim 17, wherein discarding any one of the plurality of pixel valuesfor any one non-zero pixel that is not adjacent to another non-zeropixel comprises: weighting a filter for a first pixel location basedupon identifying a touch at a second pixel location separated from thefirst pixel location.
 19. The method as recited in claim 17, whereinrejecting detected input for any one of the plurality of pixel valuesassociated with a hover input comprises: calculating an aspect ratio forthe detected input to identify whether the detected input representstouch input or hover input.
 20. The method as recited in claim 19,further comprising: comparing the aspect ratio for the detected touch toa pre-specified rule set specific to the touch panel.